package com.zhouxiao.multithreading.ticket;

/**
 * @author 周明阳
 * mail:gqzmy@outlook.com
 * 时间:2018-03-13 9:19
 */

public class Station extends Thread {

    /*通过构造方法给线程名字赋值*/
    Station(String name) {
        super(name);
    }

    /*为了保持票数的一致，票数要静态*/
    private static int tick = 20;
    /*创建一个静态的钥匙，可以是任意值*/
    private final static Object object = "aa";

    /*重写run方法，实现卖票操作*/
    @Override
    public void run() {
        while (tick > 0) {
            /*使用一个锁，进去的人会把钥匙拿在手上，出来把钥匙拿出来*/
            synchronized (object) {
                if (tick > 0) {
                    System.out.println(getName() + "卖出了第" + tick + "张票");
                    tick--;
                } else {
                    System.out.println("票卖完了！！！");
                }
            }
            try {
                sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
